package com.gitee.cirnochat.chatai.model.enums.aimessage;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import com.gitee.cirnochat.common.model.enums.BaseEnum;
import lombok.Getter;

@Getter
public enum StreamEventType implements BaseEnum<String> {
    /**
     * 创建会话
     */
    CREATE_SESSION("create_session"),
    /**
     * 更新会话
     */
    UPDATE_SESSION("update_session"),
    /**
     * 事件要求更新某个指定消息的数据
     */
    UPDATE_MESSAGE("update_message"),
    /**
     * 事件传输的数据
     */
    DATA("data"),
    /**
     * 事件完成
     */
    DONE("done"),
    /**
     * 事件出错
     */
    ERROR("error")
    ;

    @JsonValue
    @EnumValue
    private final String value;

    StreamEventType(String value) {
        this.value = value;
    }

    public static StreamEventType fromValue(String value) {
        for (StreamEventType event : StreamEventType.values()) {
            if (event.getValue().equals(value)) {
                return event;
            }
        }
        return null;
    }
}
